package spectra.ee.web.common.model;

/**
 * 설문 관련 클래스.
 *
 * @author shyun
 */
public class Survey
{
    /** 설문객체. */
    private Survey survey;

    /** 설문ID. */
    private String surveyId;

    /** 도메인ID. */
    private String domainId;

    /** 노드ID. */
    private String nodeId;

    /** 서비스타입. (SVKNW: 상담지식, SVFAQ: FAQ, SVQNA: QnA, SVCHT: 채팅) */
    private String serviceType;

    /** 설문타입. */
    private String surveyType;

    /** 제목. */
    private String title;

    /** 설명. */
    private String description;

    /** 유효기간시작일자. */
    private String fromValidDate;

    /** 유효기간종료일자. */
    private String toValidDate;

    /** 등록자ID. */
    private String createdBy;

    /** 등록일자. */
    private String createdDate;

    /** 수정자ID. */
    private String updatedBy;

    /** 수정일자. */
    private String updatedDate;

    /** 코드셋ID. */
    private String codeSetId;

    /** 매핑ID. */
    private String mappingId;

    /** 타겟ID. */
    private String targetId;

    /** 매핑타입. */
    private String mappingType;

    /** 타겟테이블. */
    private String targetTable;

    /** 타겟필드. */
    private String targetField;

    /** QnaID. */
    private String qnaId;

    /** 현재일자. */
    private String currentDate;

    /**
     * 현재일자를 얻는다.
     *
     * @return currentDate 현재일자.
     */
    public String getCurrentDate()
    {
        return currentDate;
    }

    /**
     *현재일자를 설정한다.
     *
     * @param currentDate 현재일자.
     */
    public void setCurrentDate(String currentDate)
    {
        this.currentDate = currentDate;
    }

    /**
     * 매핑ID를 얻는다.
     *
     * @return mappingId 매핑ID.
     */
    public String getMappingId()
    {
        return mappingId;
    }

    /**
     * 코드셋ID를 얻는다.
     *
     * @return codeSetId 코드셋ID.
     */
    public String getCodeSetId()
    {
        return codeSetId;
    }

    /**
     * 등록자ID를 얻는다.
     *
     * @return createdBy 등록자ID.
     */
    public String getCreatedBy()
    {
        return createdBy;
    }

    /**
     * 등록자ID를 설정한다.
     *
     * @param createdBy 등록자ID.
     */
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    /**
     * 등록일자를 얻는다.
     *
     * @return createdDate 등록일자.
     */
    public String getCreatedDate()
    {
        return createdDate;
    }

    /**
     * 등록일자를 설정한다.
     *
     * @param createdDate 등록일자.
     */
    public void setCreatedDate(String createdDate)
    {
        this.createdDate = createdDate;
    }

    /**
     * 설명을 얻는다.
     *
     * @return description 설명.
     */
    public String getDescription()
    {
        return description;
    }

    /**
     * 설명을 설정한다.
     *
     * @param description 설명.
     */
    public void setDescription(String description)
    {
        this.description = description;
    }

    /**
     * 도메인ID를 얻는다.
     *
     * @return domainId 도메인ID.
     */
    public String getDomainId()
    {
        return domainId;
    }

    /**
     * 도메인ID를 설정한다.
     *
     * @param domainId 도메인ID.
     */
    public void setDomainId(String domainId)
    {
        this.domainId = domainId;
    }

    /**
     * 노드ID를 얻는다.
     *
     * @return nodeId 노드ID.
     */
    public String getNodeId()
    {
        return nodeId;
    }

    /**
     * 노드ID를 설정한다.
     *
     * @param nodeId 노드ID.
     */
    public void setNodeId(String nodeId)
    {
        this.nodeId = nodeId;
    }

    /**
     * 유효기간시작일자를 얻는다.
     *
     * @return fromValidDate 유효기간시작일자.
     */
    public String getFromValidDate()
    {
        return fromValidDate;
    }

    /**
     * 서비스타입을 얻는다.
     *
     * @return serviceType 서비스타입.
     */
    public String getServiceType()
    {
        return serviceType;
    }

    /**
     * 타겟ID를 얻는다.
     *
     * @return targetId 타겟ID.
     */
    public String getTargetId()
    {
        return targetId;
    }

    /**
     * 매핑타입를 얻는다.
     *
     * @return mappingType 매핑타입.
     */
    public String getMappingType()
    {
        return mappingType;
    }

    /**
     * 타겟테이블를 얻는다.
     *
     * @return targetTable 타겟테이블.
     */
    public String getTargetTable()
    {
        return targetTable;
    }

    /**
     * 타겟필드를 얻는다.
     *
     * @return targetField 타겟필드.
     */
    public String getTargetField()
    {
        return targetField;
    }

    /**
     * QnaID를 얻는다.
     *
     * @return qnaId QnaID.
     */
    public String getQnaId()
    {
        return qnaId;
    }

    /**
     * 설문을 얻는다.
     *
     * @return survey 설문객체.
     */
    public Survey getSurvey()
    {
        if (survey != null && !survey.getSurveyId().equals("")) return survey;

        survey = new Survey();

        survey.setSurveyId(surveyId);
        survey.setDomainId(domainId);
        survey.setServiceType(serviceType);
        survey.setSurveyType(surveyType);
        survey.setTitle(title);
        survey.setDescription(description);
        survey.setFromValidDate(fromValidDate);
        survey.setToValidDate(toValidDate);
        survey.setCreatedBy(createdBy);
        survey.setCreatedDate(createdDate);
        survey.setUpdatedBy(updatedBy);
        survey.setUpdatedDate(updatedDate);
        survey.setCodeSetId(codeSetId);
        survey.setMappingId(mappingId);
        survey.setTargetId(targetId);
        survey.setMappingType(mappingType);
        survey.setTargetTable(targetTable);
        survey.setTargetField(targetField);
        survey.setQnaId(qnaId);
        return survey;
    }

    /**
     * 설문을 설정한다.
     *
     * @param survey 설문객체.
     */
    public void setSurvey(Survey survey)
    {
        this.survey = survey;
    }

    /**
     * 설문ID를 얻는다.
     *
     * @return surveyId 설문ID.
     */
    public String getSurveyId()
    {
        return surveyId;
    }

    /**
     * 설문ID를 설정한다.
     *
     * @param surveyId 설문ID.
     */
    public void setSurveyId(String surveyId)
    {
        this.surveyId = surveyId;
    }

    /**
     * 설문타입을 얻는다.
     *
     * @return surveyType 설문타입.
     */
    public String getSurveyType()
    {
        return surveyType;
    }

    /**
     * 설문타입을 설정한다.
     *
     * @param surveyType 설문타입.
     */
    public void setSurveyType(String surveyType)
    {
        this.surveyType = surveyType;
    }

    /**
     * title를 얻는다.
     *
     * @return title.
     */
    public String getTitle()
    {
        return title;
    }

    /**
     * 제목을 설정한다.
     *
     * @param title 제목.
     */
    public void setTitle(String title)
    {
        this.title = title;
    }

    /**
     * 유효기간종료일자를 얻는다.
     *
     * @return toValidDate 유효기간종료일자.
     */
    public String getToValidDate()
    {
        return toValidDate;
    }

    /**
     * 유효기간종료일자를 설정한다.
     *
     * @param toValidDate 유효기간종료일자.
     */
    public void setToValidDate(String toValidDate)
    {
        this.toValidDate = toValidDate;
    }

    /**
     * 수정자ID를 얻는다.
     *
     * @return updatedBy 수정자ID.
     */
    public String getUpdatedBy()
    {
        return updatedBy;
    }

    /**
     * 수정자ID를 설정한다.
     *
     * @param updatedBy 수정자ID.
     */
    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy = updatedBy;
    }

    /**
     * 수정일자를 얻는다.
     *
     * @return updatedDate 수정일자.
     */
    public String getUpdatedDate()
    {
        return updatedDate;
    }

    /**
     * 수정일자를 설정한다.
     *
     * @param updatedDate 수정일자.
     */
    public void setUpdatedDate(String updatedDate)
    {
        this.updatedDate = updatedDate;
    }

    /**
     * 코드셋ID를 설정한다.
     *
     * @param codeSetId 코드셋ID.
     */
    public void setCodeSetId(String codeSetId)
    {
        this.codeSetId = codeSetId;
    }

    /**
     * 서비스타입을 설정한다.
     *
     * @param serviceType 서비스타입.
     */
    public void setServiceType(String serviceType)
    {
        this.serviceType = serviceType;
    }

    /**
     * 유효기간시작일자를 설정한다.
     *
     * @param fromValidDate 유효기간시작일자.
     */
    public void setFromValidDate(String fromValidDate)
    {
        this.fromValidDate = fromValidDate;
    }

    /**
     * 매핑ID를 설정한다.
     *
     * @param mappingId 메핑ID.
     */
    public void setMappingId(String mappingId)
    {
        this.mappingId = mappingId;
    }

    /**
     * 타겟ID를 설정한다.
     *
     * @param targetId 타겟ID.
     */
    public void setTargetId(String targetId)
    {
        this.targetId = targetId;
    }

    /**
     * 매핑타입를 설정한다.
     *
     * @param mappingType 매핑타입.
     */
    public void setMappingType(String mappingType)
    {
        this.mappingType = mappingType;
    }

    /**
     * 타겟테이블를 설정한다.
     *
     * @param targetTable 타겟테이블.
     */
    public void setTargetTable(String targetTable)
    {
        this.targetTable = targetTable;
    }

    /**
     * 타겟필드를 설정한다.
     *
     * @param targetField 타겟필드.
     */
    public void setTargetField(String targetField)
    {
        this.targetField = targetField;
    }

    /**
     * QnaID를 설정한다.
     *
     * @param qnaId QnaID.
     */
    public void setQnaId(String qnaId)
    {
        this.qnaId = qnaId;
    }
}
